/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package objets;

/**
 * Gestion de tous les déplacements
 *
 * @author phoebus
 */
public class Interpolation {

    private String etats[] = {"A", "B", "C", "D"};
    private String instruction[] = new String[4];
    private String pivot[]= new String[4];// valeurs du pivot ex : RAPID PROGRAMME ...
    private int position = 0;
    private boolean modalite = true;
    private int old_position = 0;

    /**
     * affecte l'instruction de déplacement rapide G0
     *
     * @param linstruction
     */
    public void SetA(String linstruction) {
        this.instruction[0] = linstruction;
    }
    /**
     * Affecte la valeur du pivot
     * Ex : RAPID sera la valeur A auquel on affecte G0 de instruction
     * @param pivot 
     */
    public void SetA_pivot(String pivot){
        this.pivot[0]= pivot;
    }
/**
     * Affecte la valeur du pivot
     * Ex : RAPID sera la valeur B auquel on affecte G1 de instruction
     * @param pivot 
     */
    public void SetB_pivot(String pivot){
        this.pivot[1]= pivot;
    }
    /**
     * Affecte la valeur du pivot
     * Ex : RAPID sera la valeur C auquel on affecte G2 de instruction
     * @param pivot 
     */
    public void SetC_pivot(String pivot){
        this.pivot[2]= pivot;
    }
        /**
     * Affecte la valeur du pivot
     * Ex : RAPID sera la valeur D auquel on affecte G3 de instruction
     * @param pivot 
     */
    public void SetD_pivot(String pivot){
        this.pivot[3]= pivot;
    }
    /**
     * affecte l'instruction de déplacement programme G1
     *
     * @param linstruction
     */
    public void SetB(String linstruction) {
        this.instruction[1] = linstruction;
    }

    /**
     * affecte l'instruction d'interpolation circulaire G2
     *
     * @param linstruction
     */
    public void SetC(String linstruction) {
        this.instruction[2] = linstruction;
    }

    /**
     * affecte l'instruction d'interpolation circulaire G3
     *
     * @param linstruction
     */
    public void SetD(String linstruction) {
        this.instruction[3] = linstruction;
    }

    /**
     * affecte une instruction
     *
     * @param linstruction
     */
    public void setinstruction(String linstruction) {
        switch (linstruction) {
            case "A":
                this.position = 0;
                break;
            case "B":
                this.position = 1;
                break;
            case "C":
                this.position = 2;
                break;
            case "D":
                this.position = 3;
                break;
            default:
                this.position = 0;
                break;
        }

    }

    /**
     * retourne l etat de l'instruction en cours
     *
     * @return
     */
    public String getetat() {
        return this.pivot[this.position];
        //return etats[this.position];
    }

    /**
     * retourne l instruction en cours
     *
     * @return
     */
    public String getinstruction() {

        return instruction[this.position];
    }

    /**
     * @return the modalite
     */
    public Boolean getModalite() {
        return modalite;
    }

    /**
     * @param modalite the modalite to set
     */
    public void setModalite(boolean modalite) {
        this.modalite = modalite;
    }
    
    public String affiche() {
        String affichage = "";

        if (this.modalite == true) {
            affichage = this.getinstruction();
            this.modalite = false;
        } else {
            affichage = "";
            
        }
        return affichage;
    }
    public void affecte(String mot){
        for (int i = 0; i < 4; i++) {
            if (mot.equals(this.pivot[i])) {
                this.position=i;
                if ((i!= this.old_position)) {
                    this.old_position=i;
                    this.modalite=true;
                }
                this.modalite = true;
            }
        }
    }

    /**
     * @return the old_position
     */
    public int getOld_position() {
        return old_position;
    }

    /**
     * @param old_position the old_position to set
     */
    public void setOld_position(int old_position) {
        this.old_position = old_position;
    }
}
